package com.youlai.boot.modules.game.enums;

import lombok.Getter;

/**
 * 游戏积分行为类型枚举
 *
 * @author 有来技术团队
 */
@Getter
public enum PointsActionEnum {

    /**
     * 每日登录
     */
    DAILY_LOGIN("DAILY_LOGIN", "每日登录", 10),

    /**
     * 完成游戏
     */
    GAME_COMPLETE("GAME_COMPLETE", "完成游戏", 50),

    /**
     * 完成任务
     */
    TASK_COMPLETE("TASK_COMPLETE", "完成任务", 30),

    /**
     * 分享游戏
     */
    GAME_SHARE("GAME_SHARE", "分享游戏", 20),

    /**
     * 成就解锁
     */
    ACHIEVEMENT_UNLOCK("ACHIEVEMENT_UNLOCK", "成就解锁", 100),

    /**
     * 每日签到
     */
    DAILY_CHECK_IN("DAILY_CHECK_IN", "每日签到", 5),

    /**
     * 邀请好友
     */
    INVITE_FRIEND("INVITE_FRIEND", "邀请好友", 200),

    /**
     * 购买游戏
     */
    GAME_PURCHASE("GAME_PURCHASE", "购买游戏", 500),

    /**
     * 系统奖励
     */
    SYSTEM_REWARD("SYSTEM_REWARD", "系统奖励", 0),

    /**
     * 系统扣减
     */
    SYSTEM_DEDUCT("SYSTEM_DEDUCT", "系统扣减", 0);

    /**
     * 行为类型编码
     */
    private final String code;

    /**
     * 行为类型名称
     */
    private final String name;

    /**
     * 默认积分值
     */
    private final int defaultPoints;

    PointsActionEnum(String code, String name, int defaultPoints) {
        this.code = code;
        this.name = name;
        this.defaultPoints = defaultPoints;
    }

    /**
     * 根据编码获取枚举
     */
    public static PointsActionEnum getByCode(String code) {
        for (PointsActionEnum actionEnum : values()) {
            if (actionEnum.getCode().equals(code)) {
                return actionEnum;
            }
        }
        return null;
    }
} 